using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("AdventureGenericButton")]
	public class AdventureGenericButton : PegUIElement
	{
		[Attribute38("AdventureGenericButton.MaterialProperties")]
		public class MaterialProperties : MonoClass
		{
			public int m_MaterialIndex => method_2<int>("m_MaterialIndex");

			public string m_MaterialPropertyName => method_4("m_MaterialPropertyName");

			public MaterialProperties(IntPtr address, string className)
				: base(address, className)
			{
			}

			public MaterialProperties(IntPtr address)
				: this(address, "MaterialProperties")
			{
			}
		}

		public static string s_DefaultPortraitMaterialtextureAssetPath => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "AdventureGenericButton", "s_DefaultPortraitMaterialtextureAssetPath");

		public static int s_DefaultPortraitMaterialIndex => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "AdventureGenericButton", "s_DefaultPortraitMaterialIndex");

		public MeshRenderer m_PortraitRenderer => method_3<MeshRenderer>("m_PortraitRenderer");

		public MaterialProperties m_MaterialProperties => method_3<MaterialProperties>("m_MaterialProperties");

		public MeshRenderer m_BorderRenderer => method_3<MeshRenderer>("m_BorderRenderer");

		public MaterialProperties m_BorderMaterialProperties => method_3<MaterialProperties>("m_BorderMaterialProperties");

		public UberText m_ButtonTextObject => method_3<UberText>("m_ButtonTextObject");

		public Color m_NormalTextColor => method_2<Color>("m_NormalTextColor");

		public Color m_DisabledTextColor => method_2<Color>("m_DisabledTextColor");

		public bool m_PortraitLoaded => method_2<bool>("m_PortraitLoaded");

		public AdventureGenericButton(IntPtr address, string className)
			: base(address, className)
		{
		}

		public AdventureGenericButton(IntPtr address)
			: this(address, "AdventureGenericButton")
		{
		}

		public bool IsPortraitLoaded()
		{
			return method_11<bool>("IsPortraitLoaded", Array.Empty<object>());
		}

		public void SetDesaturate(bool desaturate)
		{
			method_8("SetDesaturate", desaturate);
		}

		public void SetContrast(float contrast)
		{
			method_8("SetContrast", contrast);
		}

		public void SetButtonText(string str)
		{
			method_8("SetButtonText", str);
		}

		public void SetPortraitTexture(string textureAssetPath)
		{
			method_9("SetPortraitTexture", new Class276.Enum20[1] { Class276.Enum20.String }, textureAssetPath);
		}

		public void SetPortraitTexture(string textureAssetPath, int index, string mattexprop)
		{
			method_9("SetPortraitTexture", new Class276.Enum20[3]
			{
				Class276.Enum20.String,
				Class276.Enum20.I4,
				Class276.Enum20.String
			}, textureAssetPath, index, mattexprop);
		}

		public void SetPortraitTiling(Vector2 tiling)
		{
			method_9("SetPortraitTiling", new Class276.Enum20[1] { Class276.Enum20.ValueType }, tiling);
		}

		public void SetPortraitTiling(Vector2 tiling, int index, string mattexprop)
		{
			method_9("SetPortraitTiling", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.I4,
				Class276.Enum20.String
			}, tiling, index, mattexprop);
		}

		public void SetPortraitOffset(Vector2 offset)
		{
			method_9("SetPortraitOffset", new Class276.Enum20[1] { Class276.Enum20.ValueType }, offset);
		}

		public void SetPortraitOffset(Vector2 offset, int index, string mattexprop)
		{
			method_9("SetPortraitOffset", new Class276.Enum20[3]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.I4,
				Class276.Enum20.String
			}, offset, index, mattexprop);
		}

		public void ApplyPortraitTexture(AssetReference assetRef, object obj, object userdata)
		{
			method_8("ApplyPortraitTexture", assetRef, obj, userdata);
		}

		public bool CheckValidMaterialProperties(MaterialProperties matprop)
		{
			return method_11<bool>("CheckValidMaterialProperties", new object[1] { matprop });
		}
	}
}
